package com.aaa.dang.modules.review.dao;
import com.aaa.dang.common.entity.BedInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Author: ymk
 * @Date: 2018/12/15 21:00
 * @description:
 */
@Mapper
@Component
public interface IReviewDao {
    /**
     * 获取入住申请
     * @param query
     * @return
     */
    List<Map<String, Object>> getliveAll(Map<String, Object> query);
    int getliveTotal(Map<String,Object> query);

    /**
     * 通过入住申请
     * @param
     * @return
     */
    int pass(Map<String,Object> map);

    /**
     * 驳回入住申请
     * @param id
     * @return
     */

    int reject(Map<String,Object> id);

    /**
     * 为用户添加床位
     * @param map
     * @param
     * @return
     */

    int  addUser(Map<String,Object> map);

    /**
     * 获取已有床位人数
     * @param room_id
     * @return
     */
    int getpeoplenum(Map<String, Object> room_id);

    /**
     * 更新房间已住人数
     * @param room_id
     * @param peoplenum
     * @return
     */

    int  updateRoomNum(int room_id, int peoplenum);

    /**
     * 获取退宿申请
     * @param query
     * @return
     */

    List<Map<String, Object>> getretireAll(Map<String, Object> query);

    /**
     * 退宿申请的数量
     * @param query
     * @return
     */

    int getretireTotal(Map<String, Object> query);

    /**
     * 删除床位
     * @param bed_id
     * @return
     */

    int deluserbed(Map<String, Object> bed_id);

    /**
     * 退宿审核通过（修改状态）
     * @param id
     * @return
     */

    int passretire(Map<String, Object> id);

    /**
     * 驳回退宿审核（修改状态）
     * @param id
     * @return
     */

    int rejectretire(Map<String,Object> id);

    /**
     * 添加入住时间
     * @param id
     * @return
     */

    int addlivetime(int id);

    /**
     * 添加退宿时间
     * @param id
     * @return
     */

    int addretiretime(Map<String, Object> id);

    /**
     * 更新已住天数
     * @param user_id
     * @return
     */

    int updatestaytime(Map<String, Object> user_id);

    /**
     * 查询要退住宿费的天数
     * @param user_id
     * @return
     */

    int getdaysnum(Map<String, Object> user_id);

    /**
     * 获取交租审核
     * @param query
     * @return
     */

    List<Map<String,Object>> getrentAll(Map<String, Object> query);

    /**
     * 获取交租审核的数量
     * @param query
     * @return
     */

    int getrentTotal(Map<String, Object> query);

    /**
     * 用户是否存在于床位表
     * @param map
     * @return
     */
    int  userisExit(Map<String, Object> map);

    /**
     * 更新房间类型
     * @param room_id
     * @param user_sex
     * @return
     */

    int  updateroomtype(int room_id, int user_sex);

    /**
     * 添加入住、到期时间
     * @param map
     * @return
     */

    int  addlivetimefree(Map<String,Object> map);

    /**
     * 该用户是否已有床铺
     * @param map
     * @return
     */

    int userbedisExit(Map<String,Object> map);

    /**
     * 更新已住时间
     * @param user_id
     * @return
     */

    int  getstaytime(int user_id);

    /**
     * 更新租金审核表状态
     * @param id
     * @return
     */

    int updateRentState(int id);

    /**
     * 驳回租金审核
     * @param id
     * @return
     */

    int rejectRent(Map<String, Object> id);

    /**
     * 获取押金审核
     * @param query
     * @return
     */

    List<Map<String,Object>> getpositAll(Map<String, Object> query);

    /**
     * 押金审核数量
     * @param query
     * @return
     */

    int getpositTotal(Map<String, Object> query);

    /**
     * 更新用户表押金
     * @param map
     * @return
     */

    int updateUserDeposit(Map<String,Object> map);

    /**
     * 更新审核状态
     * @param id
     * @return
     */

    int updateDepositState(int id);

    /**
     * 驳回押金审核状态
     * @param id
     * @return
     */

    int rejectposit(Map<String, Object> id);

    /**
     * 添加租金表
     * @param map
     * @return
     */
    int  addpayrent(Map<String, Object> map);

    /**
     * 更新到期时间
     * @param map
     * @return
     */

    int  updateEndtime(Map<String,Object> map);

    /**
     * 获取到期时间
     * @param user_id
     * @return
     */

    Date getEndtime(Map<String, Object> user_id);

    /**
     * 返回租金
     * @param user_id
     * @return
     */

    Map<String,Object> getReturnRent(Map<String, Object> user_id);

    /**
     * 查询是否已退宿
     * @param query
     * @return
     */

    int isretire(Map<String, Object> query);

    /**
     * 获取小区
     * @return
     */

    List<BedInfo> getArea();

    /**
     * 获取楼栋
     * @param value
     * @return
     */


    List<BedInfo> getBuild(int value);

    /**
     * 获取房间
     * @param value
     * @param user_sex
     * @return
     */

    List<BedInfo> getRoom(int value, int user_sex);

    /**
     * 获取床位
     * @param value
     * @return
     */

    List<BedInfo> getBed(int value);

    /**
     * 获取入住待审核数量
     * @return
     */

    int getliveApplyUnaudited();

    /**
     * 获取退宿待审核数量
     * @return
     */

    int getretireApplyUnaudited();

    /**
     * 获取租金待审核数量
     * @return
     */

    int getrentApplyUnaudited();

    /**
     * 获取押金待审核数量
     * @return
     */

    int getdepositApplyUnaudited();

    /**
     * 获取维修待处理数量
     * @return
     */

    int getrepairUnaudited();

    /**
     * 获取退宿时间
     * @param map
     * @return
     */
    int getRetireTime(Map<String, Object> map);

    /**
     * 更新退宿时间
     * @param map
     * @return
     */
    int updateRetireTime(Map<String, Object> map);
}
